package models

import "github.com/astaxie/beego/orm"

type Category struct {
	Id     int    // 自增ID
	Pid    int    // 分类ID
	Title  string `orm:"size(30);unique"` // 标题
	Intro  string // 介绍
	Icon   string // 图标
	Cnt    int    // 统计分类下图书
	Sort   int    // 排序
	Status bool   // 状态 true显示  false隐藏
}

/**
给Category这个结构定义一个方法
说明：在ORM中，如果结构体中有TableName这个方法，就是使用返回的字符串作为表名
*/
func (m *Category) TableName() string {
	return TNCategory()
}

/**
根据所有分类的方法
*/
func (m *Category) GetCates(pid int, status int) (cates []Category, err error) {
	qs := orm.NewOrm().QueryTable(TNCategory())
	if pid > -1 {
		qs = qs.Filter("pid", pid)
	}
	if 0 == status || 1 == status {
		qs = qs.Filter("status", status)
	}
	_, err = qs.OrderBy("-status", "sort", "title").All(&cates)
	return
}

/**
  根据cid分类ID获取分类信息
*/
func (m *Category) Find(cid int) (cate Category) {
	cate.Id = cid
	orm.NewOrm().Read(&cate)
	return cate
}
